/*! \file ConfigManager.h
 *	\brief <write description for ConfigManager.h>
 *
 *	created:	2009/11/11
 *	created:	11:11:2009   13:50
 *	filename: 	c:\src\main\libs\config\ConfigManager.h
 *	file path:	c:\src\main\libs\config
 *	file base:	ConfigManager
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _CONFIG_CONFIGMANAGER_H_
#define _CONFIG_CONFIGMANAGER_H_

#pragma once

#include <core/map.h>
#include <core/SmartPtr.h>
#include <core/string.h>

#include "types.h"

namespace tt{
namespace config{

class CONFIG_API ConfigManager
{
private:
	ConfigManager(void);
	~ConfigManager(void);
	friend CONFIG_API ConfigManager& g_cfgMgr();

public:
	SharedPtr<BaseConfig> createConfig(const String& configName);

	void close();
};

CONFIG_API ConfigManager& g_cfgMgr();

} //namespace config
} //namespace tt

#endif //_CONFIG_CONFIGMANAGER_H_
